package com.kelvem.saas.workbanch.fsm.anno.event;

import com.kelvem.saas.workbanch.fsm.handle.Handle;

import java.lang.annotation.*;

/**
 * saas组件-Event声明注解
 *
 * @author kelvem
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
@Repeatable(RegisterEvents.class)
public @interface RegisterEvent {
    String eventCode() default "";
    
    String eventName() default "";
    
    String srcState() default "";
    
    String dstState() default "";
    
    Class<? extends Handle>[] beforeHandles() default {};
    Class<? extends Handle>[] handles() default {};
    Class<? extends Handle>[] afterHandles() default {};
    
}
